package com.tangsm.spring.boot.mybatis.plus.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.tangsm.spring.boot.mybatis.plus.domain.entity.UserInfo;
import com.tangsm.spring.boot.mybatis.plus.mapper.UserInfoMapper;
import com.tangsm.spring.boot.mybatis.plus.service.UserInfoService;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * 用户信息业务接口实现类
 *
 * @author tangsm
 */
@Service
public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo> implements UserInfoService {

    /**
     * 添加
     *
     * @return 响应结果
     */
    @Override
    public String add() {
        // 筑造用户数据
        UserInfo userInfo = buildUserInfo();

        // 新增
        this.baseMapper.insert(userInfo);

        return "ok";
    }

    /**
     * 批量添加
     *
     * @return 响应结果
     */
    @Override
    public String addBatch() {
        List<UserInfo> list = new ArrayList<>();
        list.add(buildUserInfo());
        list.add(buildUserInfo());
        list.add(buildUserInfo());
        return this.saveOrUpdateBatch(list) ? "ok" : "fail";
    }

    /**
     * 更新
     *
     * @return 响应结果
     */
    @Override
    public String up() {
        UserInfo userInfo = new UserInfo();
        userInfo.setId(20L);
        userInfo.setAge(18);

        // 更新数据
        this.baseMapper.updateById(userInfo);

        return "ok";
    }

    /**
     * 筑造用户数据
     *
     * @return 用户数据
     */
    private UserInfo buildUserInfo() {
        UserInfo userInfo = new UserInfo();
        userInfo.setName("小美");
        userInfo.setAge(17);
        userInfo.setSex("0");

        return userInfo;
    }
}
